<?php
/**
 * Crud Post
 * 
 * @author André Coura <andreccls@gmail.com>
 * @since 07/06/2012
 */
//necessário para todas as páginas do admin (facilitador)
include("defaultAdmin.php");
require_once(PASTA_DAO."Post.class.php");



/**
 * VERIFICAÇÃO DA TELA QUE SERÁ EXIBIDA
 */
 if(!isset($_GET["id"]))
	$id = "";
else
	$id = (int)$_GET["id"];
if(!is_numeric($id) || $id == 0 || $id=="") 
	$id = null;
$objCtrlSmarty->assign("id_usuario",$id);
$objPost = new Post();

if(!isset($_GET["a"]))
	$_GET["a"] = "";
switch ($_GET["a"]){
	case 'form':
		if(isset($id)){
			//busco os dados do banco
			$arrCampos = $objPost->buscaCampos($id);
			//seto no formulário os valores dos campos automaticamente
			foreach ($arrCampos as $nomeCampo => $fieldData) {
				switch ($nomeCampo){
					case "img_post":
					case "img1_post":
					case "img2_post": 
					case "img3_post":
					case "img4_post":
						if(isset($fieldData) && $fieldData!=""){
							$objCtrlSmarty->assign($nomeCampo."_thumb",base64_encode(serialize(array("img"=>utf8_encode($fieldData), "w"=>"415","h"=>"100", "filename" => PASTA_UPLOADS_ARQUIVOS."blog/"))));
							$objCtrlSmarty->assign($nomeCampo,base64_encode(serialize(array("img"=>utf8_encode($fieldData), "w"=>"600","h"=>"400", "filename" => PASTA_UPLOADS_ARQUIVOS."blog/"))));
						}
						break;
					case "status_post":
						if($fieldData=="S")
						$objCtrlSmarty->assign("ATIVO","checked=\"checked\"");
					else
						$objCtrlSmarty->assign("INATIVO","checked=\"checked\"");
						break;
					case "data_post":
						if($fieldData != null && $fieldData != "")
							$objCtrlSmarty->assign($nomeCampo,FormataDatas::parseDataBR($fieldData));
						break;
					default:
						$objCtrlSmarty->assign($nomeCampo,utf8_encode($fieldData));
						break;
				}
			}
		}else{
			$objCtrlSmarty->assign("data_post",date("d/m/Y"));
			$objCtrlSmarty->assign("ATIVO","checked=\"checked\"");
		}
		$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/formPosts.tpl"));
		break;
	case 'post':
		try{
			//validação preguiça de fazer em javascript
			$arrErros = array();
			if($_POST["titulo_post"]=="")
				$arrErros["MENS_ERRO_TITULO"] = "O Título do post é obrigatório";
			if($_POST["desc_post"]=="")
				$arrErros["MENS_ERRO_DESCRICAO"] = "A Descrição do post é obrigatório";
			//fim validação dos dados		

			//se não teve erros continua com o post
			if(count($arrErros) == 0){
				$id = (int)$_POST["id_post"];
				if(!is_numeric($id) || $id == 0 || $id=="") 
					$id = null; //verificação se tem algo no id para não dar pau
				
				if(!isset($_POST["status_post"]))	
					$_POST["status_post"] = "N";
				$objPost->alterar($id,$_POST,$_FILES);
				HttpUtil::vaiPara("CrudPost.php?msg=3");
			}else{
				//loop para preencher, em caso de erro, o formulário
				foreach ($_POST as $nomeCampo => $fieldData) {
					$objCtrlSmarty->assign($nomeCampo,utf8_encode($fieldData));
				}
				//loop para setar os lugares com os erros
				foreach ($arrErros as $nomeErro => $conteudo) {
					$objCtrlSmarty->assign($nomeErro,$conteudo);
				}
				//exibo o form aqui
				$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/formPosts.tpl"));
			}
		}catch(CustonException $e){
			HttpUtil::vaiPara("CrudPost.php?msg=5");
		}
		break;
	case 'excluir':
		//exclusão do arquivo físico, se existir
		try{
			$objPost->apagaArquivoFisico($id,"img_post",PASTA_UPLOADS_ARQUIVOS."blog/");
			$objPost->apagaArquivoFisico($id,"img1_post",PASTA_UPLOADS_ARQUIVOS."blog/");
			$objPost->apagaArquivoFisico($id,"img2_post",PASTA_UPLOADS_ARQUIVOS."blog/");
			$objPost->apagaArquivoFisico($id,"img3_post",PASTA_UPLOADS_ARQUIVOS."blog/");
			$objPost->apagaArquivoFisico($id,"img4_post",PASTA_UPLOADS_ARQUIVOS."blog/");
		}catch (CustonException $e ){}
		$objPost->deletar($id);
		HttpUtil::vaiPara("CrudPost.php?msg=4");
		break;
	case 'lista':
	default:
		$arrDados = Utf8Parsers::matrizUtf8Encode($objPost->getListaPosts());
		$objCtrlSmarty->assign("arrPosts", $arrDados);
		$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/listaPosts.tpl"));
		break;
}


//definição da estrutura do admin <cabecalho, corpo e rodape>
$objCtrlSmarty->assign("ESTRUTURA",$objCtrlSmarty->fetch(TPLS_FILE."admin/adminEstrutura.tpl"));

//ultima coisa que deve ter no arquivo, serve para imprimir a tela
$objCtrlSmarty->display(TPLS_FILE."index.tpl");
?>